package com.gisuni.sddc.util;

import java.util.Iterator;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;


/**
 * Json通用方法
 * @author	yanggy
 * @version	0.1
 *
 */
public class JsonUtil {
	/**
	 * 将字符串转换为JSONObject
	 * @param s json字符串
	 * @return {JSONObject}
	 * @throws JSONException
	 */
	public static JSONObject str2Json(String s) throws JSONException {
		if (StringUtil.isNullOrEmpty(s)) {
			return null;
		}
		JSONTokener tokener = new JSONTokener(s);
		JSONObject o = new JSONObject(tokener);
		return o;
	}
	
	/**
	 * 将字符串转换为JSONArray
	 * @param s json字符串
	 * @return {JSONArray}
	 * @throws JSONException
	 */
	public static JSONArray str2JsonArray(String s) throws JSONException {
		if (StringUtil.isNullOrEmpty(s)) {
			return null;
		}
		JSONTokener tokener = new JSONTokener(s);
		JSONArray o = new JSONArray(tokener);
		return o;
	}
	
	/**
	 * 合并多个JSONObject
	 * @param objs
	 * @return
	 * @throws JSONException
	 */
	@SuppressWarnings("unchecked")
	public static JSONObject unionJsonObject(List<JSONObject> objs) throws JSONException {
		JSONObject union = new JSONObject();
		for (JSONObject item : objs) {
			Iterator<String> iterator = item.keys();
			while (iterator.hasNext()) {
				String key = iterator.next();
				Object value = item.get(key);
				union.put(key, value);
			}
		}
		return union;
	}
}